<template>
	<view class="content">
		<web-view 
			:src="h5Url"
			@message="handleMessage"
			class="webview"
		></web-view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// h5Url: '/static/h5/ecpay_payment.html',
				h5Url: 'http://pay.onlyrent.tw?token=',
				token:'',
				order_Number:''
			}
		},
		onLoad(options) {
			// 场景1：加载本地打包的H5文件
			// if(options.type === 'local') {
			//   this.h5Url = '/static/h5/index.html'
			// } 
			// 场景2：加载网络H5页面
			// else {
			//   this.h5Url = decodeURIComponent(options.url)
			// }
			
			uni.hideLoading();
			
			const eventChannel = this.getOpenerEventChannel();
			eventChannel.on('initData', (data) => {
				console.log('接收到的数据:', data); 
				// 这里可以处理数据，如赋值给data或更新UI
				// this.token = data.token;
				// this.order_Number = data.order_number;
			  
				// 构建带参数的URL
				// const params = new URLSearchParams({
				// 	token: this.token,
				// 	order_number: this.order_number
				// }).toString();
			
				this.h5Url = this.h5Url+data.token;
			});
		},
		methods: {
			handleMessage(e) {
				// uni.showToast({
				// 	title: '收到H5消息: ' + JSON.stringify(e.detail),
				// 	icon: 'none'
				// })
				console.log('收到H5消息:', e.detail);
				// const messageData = e.detail.data.payToken;
				// 处理 PayToken 消息
				this.sendPayTokenToParent(e.detail.data[0].payToken);
				// if (messageData && messageData.type === 'PAY_TOKEN' && !this.hasReceivedToken) {
				// 	this.hasReceivedToken = true;
					
				// 	const payToken = messageData.payToken;
				// 	const paymentInfo = messageData.paymentInfo;
					
				// 	uni.showModal({
				// 		title: '获取PayToken成功',
				// 		content: `PayToken: ${payToken}`,
				// 		showCancel: false,
				// 		confirmText: '确定',
				// 		success: (res) => {
				// 			if (res.confirm) {
				// 				// 将数据返回给父页面并关闭当前页面
				// 				this.sendPayTokenToParent(payToken, paymentInfo);
				// 			}
				// 		}
				// 	});
				// }
			},
			// 将 PayToken 发送给父页面并关闭当前页面
			sendPayTokenToParent(payToken) {
				
				const eventChannel = this.getOpenerEventChannel();
				eventChannel.emit('acceptData', { payToken: payToken }); // 发送数据
				
				// 延迟关闭页面，确保消息已发送
				setTimeout(() => {
					uni.navigateBack({
						delta: 1,
						success: () => {
							console.log('页面关闭成功');
						}
					});
				}, 500);
			},
			refreshData() {
			    console.log('A页面的方法被调用')
			}
	}
}
</script>

<style>
	.content {
		flex: 1;
		padding: 40rpx 20rpx;
	}
	.webview {
		width: 100%;
		height: 100vh;
	}
</style>
